home *** CD-ROM | disk | FTP | other *** search
/ START Magazine / START VOL 4 NO 8.st / WIPES.ARC / WIPES.LST < prev   
Encoding:
File List  |  1989-12-06  |  5.3 KB  |  220 lines

  1. ' ======================================================================
  2. '                    GFA-BASIC Video Effects Routines
  3. ' ======================================================================
  4. '
  5. '     by Carlos Tirado
  6. ' (C) Copyright 1990 by Antic Publishing, Inc.
  7. '
  8. ' ------------------------------
  9. '  BMOVE ROUTINES (Wipes)
  10. ' ------------------------------
  11. '
  12. '  This next subroutine  "rollup" is not included in the Slide Show
  13. '  program SUSLSHOW.BAS  If you intend to use it please note that
  14. '  it uses an additional 32000 bytes accessed by the pointer -scrn2-
  15. '
  16. Procedure Rollup
  17.   Bmove Screen,Scrn2,32000
  18.   For Ev=1 To 50
  19.     Bmove Screen+32000-160*(Ev+Ev-1),Screen+32000-160*(Ev+Ev+1),Ev*160
  20.     Bmove Scrn2+32000-160*(Ev+1),Screen+32000-160*(Ev+1),160
  21.     Bmove Scrn1+32000-160*Ev,Screen+32000-160*Ev,160
  22.   Next Ev
  23.   For Ev=98 Downto 0
  24.     Bmove Screen+160*Ev+320,Screen+160*Ev,7840
  25.     Bmove Scrn2+160*Ev+8160,Screen+160*Ev+7840,160
  26.     Bmove Scrn1+160*Ev+8000,Screen+160*Ev+8000,320
  27.   Next Ev
  28.   For Ev=7840 To 160 Step -160
  29.     Bmove Screen+320,Screen,Ev
  30.     Bmove Scrn2+Ev-160,Screen+Ev-160,160
  31.     Bmove Scrn1+Ev,Screen+Ev,160
  32.   Next Ev
  33.   Bmove Scrn1,Screen,160
  34. Return
  35. '
  36. Procedure Rolldown
  37.   For Ev=1 To 49
  38.     Bmove Screen,Screen+320,160*Ev
  39.     Bmove Scrn1+160*(Ev+Ev+1),Screen+160,160
  40.     Bmove Scrn1+160*(Ev+Ev+2),Screen,160
  41.   Next Ev
  42.   For Ev=0 To 98
  43.     Bmove Screen+160*Ev,Screen+160*Ev+320,7840
  44.     Bmove Scrn1+160*Ev,Screen+160*Ev,160
  45.     Bmove Scrn1+160*Ev+16160,Screen+160*Ev+160,160
  46.   Next Ev
  47.   For Ev=50 Downto 1
  48.     Bmove Screen+32000-160*(Ev+Ev+1),Screen+32000-160*(Ev+Ev-1),Ev*160
  49.     Bmove Scrn1+32000-160*(Ev+Ev+1),Screen+32000-160*(Ev+Ev+1),320
  50.   Next Ev
  51. Return
  52. '
  53. Procedure Scroll
  54.   For Ev=0 To 31680 Step 320
  55.     Bmove Screen+320,Screen,31680
  56.     Bmove Scrn1+Ev,Screen+31680,320
  57.   Next Ev
  58. Return
  59. '
  60. Procedure Uncover
  61.   For Ev=0 To 15840 Step 160
  62.     Bmove Screen+160,Screen,15840
  63.     Bmove Scrn1+Ev,Screen+15840,160
  64.     Bmove Screen+16000,Screen+16160,15840
  65.     Bmove Scrn1+31840-Ev,Screen+16000,160
  66.   Next Ev
  67. Return
  68. '
  69. Procedure Cover
  70.   For Ev=15840 To 0 Step -160
  71.     Bmove Scrn1+Ev,Screen,16000-Ev
  72.     Bmove Scrn1+16000,Screen+16000+Ev,16000-Ev
  73.   Next Ev
  74. Return
  75. '
  76. Procedure Venetian
  77.   Local Ev,Ev2
  78.   For Ev=0 To 7840 Step 160
  79.     For Ev2=0 To 24000 Step 8000
  80.       Bmove Scrn1+8000-Ev-160+Ev2,Screen+Ev2,Ev+160
  81.     Next Ev2
  82.   Next Ev
  83. Return
  84. ' ----------------------------------
  85. '   BIT BLIT ROUTINES (Dissolves)
  86. ' ----------------------------------
  87. '
  88. '  Don't forget to include in your program the next line:
  89. '        DIM s%(5),d%(5),p%(8)
  90. '
  91. Procedure Setup_bitblit
  92.   P%(0)=0                           ! p%()  coordinates & mode of Bit Blit
  93.   P%(8)=3
  94.   S%(0)=Scrn1                       ! s%() contains SFMDB
  95.   S%(1)=320-320*(Pct_res%<>0)
  96.   S%(2)=200-200*(Pct_res%=2)
  97.   S%(3)=Int((S%(1)+15)/16)
  98.   S%(4)=0
  99.   S%(5)=4-2*(Pct_res%)-(Pct_res%=2)
  100.   D%(0)=Screen                      ! d%() contains DFMDB
  101.   D%(1)=S%(1)
  102.   D%(2)=S%(2)
  103.   D%(3)=S%(3)
  104.   D%(4)=0
  105.   D%(5)=S%(5)
  106. Return
  107. '
  108. Procedure Iris
  109.   @Setup_bitblit
  110.   For Ev=1 To 39
  111.     P%(0)=S%(1)/2-Ev*S%(1)/80
  112.     P%(4)=P%(0)
  113.     P%(1)=S%(2)/2-Ev*S%(2)/80
  114.     P%(5)=P%(1)
  115.     P%(2)=S%(1)/2+Ev*S%(1)/80-1
  116.     P%(6)=P%(2)
  117.     P%(3)=S%(2)/2+Ev*S%(2)/80-1
  118.     P%(7)=P%(3)
  119.     Bitblt S%(),D%(),P%()
  120.   Next Ev
  121.   Bmove Scrn1,Screen,32000
  122. Return
  123. '
  124. Procedure Rndom
  125.   @Setup_bitblit
  126.   Local A$
  127.   A$=Space$(400)
  128.   For Ev=0 To 399
  129.     Dpoke Varptr(A$)+Ev*2,Ev
  130.   Next Ev
  131.   For Ev=399 Downto 0
  132.     R=Random(Ev)
  133.     Ev2=Dpeek(Varptr(A$)+R*2)
  134.     P%(0)=(Ev2 Mod 20)*Int(S%(1)/20)
  135.     P%(1)=Int(Ev2/20)*Int(S%(2)/20)
  136.     P%(2)=P%(0)+Int(S%(1)/20)
  137.     P%(3)=P%(1)+Int(S%(2)/20)
  138.     P%(4)=P%(0)
  139.     P%(5)=P%(1)
  140.     P%(6)=P%(2)
  141.     P%(7)=P%(3)
  142.     Dpoke Varptr(A$)+R*2,Dpeek(Varptr(A$)+Ev*2)
  143.     Bitblt S%(),D%(),P%()
  144.   Next Ev
  145.   Clr A$
  146. Return
  147. '
  148. Procedure Cross
  149.   @Setup_bitblit
  150.   For Ev=1 To 20
  151.     P%(0)=0
  152.     P%(1)=0
  153.     P%(2)=Ev*S%(1)/40-1
  154.     P%(3)=Ev*S%(2)/40
  155.     P%(4)=P%(0)
  156.     P%(5)=P%(1)
  157.     P%(6)=P%(2)
  158.     P%(7)=P%(3)
  159.     Bitblt S%(),D%(),P%()
  160.     P%(1)=S%(2)-P%(3)
  161.     P%(3)=S%(2)-1
  162.     P%(4)=P%(0)
  163.     P%(5)=P%(1)
  164.     P%(6)=P%(2)
  165.     P%(7)=P%(3)
  166.     Bitblt S%(),D%(),P%()
  167.     P%(0)=S%(1)-P%(2)-1
  168.     P%(2)=S%(1)-1
  169.     P%(4)=P%(0)
  170.     P%(5)=P%(1)
  171.     P%(6)=P%(2)
  172.     P%(7)=P%(3)
  173.     Bitblt S%(),D%(),P%()
  174.     P%(1)=0
  175.     P%(3)=Ev*S%(2)/40
  176.     P%(4)=P%(0)
  177.     P%(5)=P%(1)
  178.     P%(6)=P%(2)
  179.     P%(7)=P%(3)
  180.     Bitblt S%(),D%(),P%()
  181.   Next Ev
  182. Return
  183. '
  184. Procedure Assemble
  185.   @Setup_bitblit
  186.   For Ev=0 To 39
  187.     For Ev2=0 To 7
  188.       P%(1)=Ev2*S%(2)/8
  189.       P%(3)=P%(1)+S%(2)/8
  190.       If Even(Ev2)
  191.         P%(0)=Ev*S%(1)/40
  192.       Else
  193.         P%(0)=S%(1)-Ev*S%(1)/40-S%(1)/40
  194.       Endif
  195.       P%(2)=P%(0)+S%(1)/40-1
  196.       P%(4)=P%(0)
  197.       P%(5)=P%(1)
  198.       P%(6)=P%(2)
  199.       P%(7)=P%(3)
  200.       Bitblt S%(),D%(),P%()
  201.     Next Ev2
  202.   Next Ev
  203. Return
  204. '
  205. Procedure Square
  206.   @Setup_bitblit
  207.   For Ev=0 To 99
  208.     Ev2=Ev*2-Odd(Int(Ev*2/10))+99*(Ev>49)+2*(Odd(Int(Ev*2/10)) And Ev>49)
  209.     P%(0)=(Ev2 Mod 10)*Int(S%(1)/10)
  210.     P%(1)=Int(Ev2/10)*Int(S%(2)/10)
  211.     P%(2)=P%(0)+Int(S%(1)/10)
  212.     P%(3)=P%(1)+Int(S%(2)/10)
  213.     P%(4)=P%(0)
  214.     P%(5)=P%(1)
  215.     P%(6)=P%(2)
  216.     P%(7)=P%(3)
  217.     Bitblt S%(),D%(),P%()
  218.   Next Ev
  219. Return
  220.